Embodiments of the present invention are directed to systems, apparatuses, and methods for enabling the interoperability of devices, and more specifically, to a method of enabling the development of new services and features for a user by inserting a transparent gateway into the stack of a device. The transparent gateway acts as a proxy to provide an application programming interface (API) that enables the development of services, features, and applications that utilize the capabilities of the device, where such capabilities may include data, functions, operations, and processes that were not accessible to developers in the absence of the gateway. Embodiments of the present invention provide a means for other devices and applications to interact with the device containing the transparent gateway in ways that would not be possible in the absence of the gateway. This enables the development of services and applications that rely on access to the internal operations of the device containing the gateway but which would not be accessible in the absence of the gateway.
Application developers wishing to build an application that interfaces with an existing device through Bluetooth™, or another wireless data input/output protocol supplied by a wireless device manufacturer, are currently limited to the functionality of the API exposed by each device manufacturer. This means that a developer or other party desiring to provide a new application or service to users of a device such as a headset or mobile phone are limited by the internal data, operations, and device functionality made available to them by the manufacturer through the existing API.
However, at present, there is no standard API that is exposed to application developers to enable the development of services and functionality that interact with, or utilize, these wireless data protocols to exchange data between a device such as a mobile phone or wireless communications equipped media player and another device, such as a headset.
The API exposed to developers (and hence the access to the internal data and operations of a device) may vary from device to device, and even change between versions of the same device. This places limits on the types of services and features that can be provided by application developers, and may also cause previously implemented services or features to be rendered obsolete when an API is changed or even slightly modified. Further, the lack of a standard API places severe limits on, and may eliminate the possibility of cross platform interoperability between certain types of devices. This limits the freedom of users to choose the combination of devices and accessories that they prefer to utilize to obtain the services and features that they desire.
Another problem created by the present use of a fixed API by a device manufacturer arises from the need by a manufacturer to change or replace an API after a device is released. At present, the only way for a manufacture to do this is by a software and/or firmware update, or the release of a new version of the device. Even in this case, the API's are still specific to the manufacturer. There is still no common API or set of services that are exposed to a developer to enable the development of value-added services and functions for users of a device such as a wireless headset or cellular phone.
What is desired is a system, apparatus, or method for enabling application developers to provide added-value services and functions for a manufacturer's device without being limited to the device features and functions exposed by the API provided by the manufacturer. Embodiments of the present invention address this and other disadvantages of the present approach to application development using a manufacturer exposed API both individually and collectively.